package com.sqfw.project.wp.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sqfw.project.zj.domain.ZjRecord;
import io.swagger.annotations.ApiModelProperty;
import com.sqfw.framework.aspectj.lang.annotation.Excel;
import com.sqfw.framework.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 工单表对象 wp_info
 *
 * @author lx
 * @date 2023-06-07
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
public class WpInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String scid;

    /** 工单编号 */
    @ApiModelProperty("工单编号")
    @Excel(name = "工单编号")
    private String wpid;

    /** 锁状态（新增默认值为0） */
    private String lockFlag;

    /** 用户姓名 */
    @ApiModelProperty("用户姓名")
    @Excel(name = "联系人")
    private String customerName;

    /** 手机号码（无值） */
    @ApiModelProperty("手机号码")
    private String phoneno;

    /** 电话 */
    @ApiModelProperty("电话")
    private String mobile;

    /** 地址 */
    @ApiModelProperty("地址")
    private String address;

    /** 性别 */
    @ApiModelProperty("性别")
    private String gender;

    /** $column.columnComment */
    private String profession;

    /** 地区 */
    @ApiModelProperty("地区")
    private String district;

    /** 来电类别 */
    @ApiModelProperty("来电类别")
    @Excel(name = "来电类别")
    private String wpType;

    /** 类别 */
    @ApiModelProperty("内容分类")
    private String class1;

    @ApiModelProperty("内容分类")
    private String class2;

    @ApiModelProperty("内容分类")
    private String class3;

    /** 内容描述 */
    @ApiModelProperty("内容描述")
    @Excel(name = "内容描述")
    private String summary;

    /** 详细地址 */
    @ApiModelProperty("详细地址")
    private String relAddress;

    /** 相关地区 */
    @ApiModelProperty("相关地区")
    private String relDistrict;

    /** 姓名 */
    @ApiModelProperty("姓名")
    private String relName;

    /** 电话 */
    @ApiModelProperty("电话")
    private String relPhoneno;

    /** 工单备注 */
    @ApiModelProperty("工单备注")
    @Excel(name = "工单备注")
    private String note;

    /** 创建时间 */
    @TableField(value = "starttime",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发起时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date starttime;

    /** 创建人账户 */
    @ApiModelProperty("创建人工号")
    private String sender;

    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatetime;

    /** 处理描述 */
    @ApiModelProperty("处理描述")
    private String lastmessage;

    /** 流转状态 */
    @ApiModelProperty("上一步流转状态")
    private String state;

    private String ctrlState;

    /** 部门等级2 */
    @ApiModelProperty("部门等级2")
    private String deptLevel2;


    private String level2Operator;

    /** 处理时限 */
    @ApiModelProperty("处理时限")
    private Integer timelimite;

    /** $column.columnComment */
    @ApiModelProperty("工单编号")
    private String visitState;

    /** 处理流转到哪个地方的状态 */
    @ApiModelProperty("处理流转到哪个地方的状态")
    @Excel(name = "当前操作")
    private String nextState;


    private String cardtype;

    /** 老平台的身份证号 */
    private String cardnum;

    /** 优先等级 */
    @ApiModelProperty("优先等级")
    private String priority;


    private String deptLevel2vice1;


    private String deptLevel2vice2;

    /** 是否为退单 */
    private String backState;

    /** 失效时间 */
    private String timeBoundry;

    //处理时限
    private String residue;


    private String level2Upload;

    /** 来电电话----改成身份证号 */
    @ApiModelProperty("联系方式--改成身份证号")
    private String callnum;

    /** 来电时间 */
    @ApiModelProperty("来电时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date calltime;

    /** 是否已阅 */
    @ApiModelProperty("是否已阅")
    private String readFlag;

    @Excel(name = "是否已阅")
    private String readFlagName;

    /** 是否紧急（工单级别） */
    @ApiModelProperty("是否紧急")
    private String hurryFlag;


    @ApiModelProperty("是否超时")
    private String timeoutFlag;

    /** 储存信息（如果放到暂存，内容为暂存） */
    @ApiModelProperty("储存信息")
    private String memoryInfo;

    /** 催单次数 */
    @ApiModelProperty("催单次数")
    private Long hurryCount;

    /** 特殊情况 */
    @ApiModelProperty("特殊情况")
    private String specialState;

    /** $column.columnComment */
    @ApiModelProperty("内容分类")
    private String class4;

    /** 工单来源 */
    @ApiModelProperty("工单来源")
    private String scidType;


    private String education;

    /** 年龄范围 */
    @ApiModelProperty("年龄范围")
    private String age;


    private String callid;

    /** 街道 */
    @ApiModelProperty("街道")
    private String street;

    /** 委员会 */
    @ApiModelProperty("居委会")
    private String committee;

    /** 街道 */
    @ApiModelProperty("街道")
    private String relStreet;

    /** 委员会 */
    @ApiModelProperty("居委会")
    private String relCommittee;

    //工单标签（可复选）
    private String dictData;

    private String ismodel;


    private String serviceId;


    private String appstatus;


    private String status;

    /** 是否有责：0否1是 */
    @ApiModelProperty("是否有责：0否1是")
    private String isAccountable;

    /** 有责原因 */
    @ApiModelProperty("质检审核待处理有责原因")
    private String cause;

    //有责原因数组
    private List<String> causeList;



    /** 1已发送短信  */
    @ApiModelProperty("1已发送短信")
    private String smsflag;

    /** 二次处理原因 */
    @ApiModelProperty("二次处理原因")
    private String disposeCause;

    /** 关联工单 */
    private String relationWp;

    /** 工单级别 */
    private String wpLevel;

    /** 办理形式 */
    @ApiModelProperty("办理形式")
    private String supervision;


    private String xbdwRead;


    private String emotionOther;

    /** 是否重复 */
    @ApiModelProperty("是否重复")
    private String isrepeat;


    private String hurryReason;


    private String hurryReason1;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date hurryTime;


    private String hurryTime1;


    private String hurryTimeflag;


    private String hfState;

    private List<String> hfStates;

    private String fact;


    private String factInfo;

    private String appealInfo;

    private String appeal;

    private String serviceBack;

    //承办单位是否完成  0：未完成  1：完成; 2--审核人收回，不展示
    private String cbdwComplete;

    /** 答市民要点 */
    @ApiModelProperty("答市民要点")
    private String replyPoint;

    private String hurryName;

    /** 是否为转移过来的工单 */
    @ApiModelProperty("是否为转移过来的工单")
    private String isTransfer;


    private String wpRefuse;

    private String wpAccessDate;

    /** 情绪 */
    private String emotion;

    private String miniStatus;

    private String threePartsNumber;

    private String feeling;

    /** 倒计时时间 */
    @ApiModelProperty("倒计时时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date countDownTime;

    private String ldshReason;

    private String isLdsh;

    private String hurryRreason;

    private String wpSource;

    private String tsWpid;

    private Integer sendSatis;

    /** 办结类型 */
    private String endState;

    private Integer phoneCalls;

    /* 当前处理人 */
    private String currWorker;

    /* 当前处理开始时间戳 */
    private Long currWorkTime;

    /*1245工单编号*/
    private String workorder;


    /*1245是否督办*/
    private String isSupervision;

    /*附件id拼接, */
    @ApiModelProperty("文件id数组")
    private String fileno;

    /*派发理由, */
    private String sellReason;

    //主要单位
    private String mainUnit;

    //用作主办单位查询条件
    private List<String> mainUnitAll;

    //协办单位1
    private String assistUnit1;
    //用作协办单位查询条件
    private List<String> assistUnit1All;

    //协办单位2
    private String assistUnit2;

    //主要单位名称
    private String mainUnitName;

    //协办单位1名称
    private String assistUnit1Name;

    //协办单位2名称
    private String assistUnit2Name;

    /*前端传来的分类数组，查询需要*/
    private List<String> classAll;

    //内容类别查询字段
    private List<List<String>> classAllFind;

    //接收区域查询字段
    private List<String> districtAll;

    //文件集合
    private List<SysMiniFile> sysMiniFiles;

    //主轨迹表集合
    private List<WpHandleLog> wpHandleLogs;

    //内容分类名称
    @Excel(name = "内容分类")
    private String mainNodename;

    //内容子类名称
    @Excel(name = "内容子类")
    private String childNodeName;
    //用户工号
    private String code;

    //处理中
    private Boolean processing;

    //分配绑定用户
    private String binduser;

    //工单是否有收回记录（0，否   1，是）
    private String recoverState;

    /* 处理截止时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deadlineTime;

    /* 标志位*/
    @Excel(name = "标志位")
    private String flagBit;
    /* 是否是声音案例，0否，1是*/
    private String isSoundCases;

    //删除标志（0存在  1，删除）
    private String delFlag;

    //工单轨迹需要字段

    private String lastState;

    private List<String> lastStates;

    /* 是否满意*/
    private String satisfied;

    /* 答复方式*/
    private String reasonable;

    /* 是否解决*/
    private String solved;

    private String backClass;

    private String reviewComplaint;


    private String fiveMajorModules;//五大板块

    //支持五大板块多选查询
    private List<String> fiveMajorModulesList;

    //工单回访表需要字段
    /* 是否接收回访*/
    private String acceptVisit;

    /* 服务态度*/
    private String issatisfied;

    /* 不满意原因*/
    private String issatisfiedReason;

    /* 不满意其他原因*/
    private String issatisfiedOther;

    /* 是否答复*/
    private String isReply;

    /* 回访答复*/
    private String isanswer;

    /* 助理处理选择  助理已处理详情页使用*/
    private String zlState;

    /* 我的工单状态  true，false*/
    private Boolean myWpInfo;

    /* 审核人未处理擦护心条件*/
    private List<String> nextStateList;

    /* 统计报表查询类型 0：工单类型  1：内容分类  2：工单来源 */
    private String selectType;

    /* 满意1，一般2，不满意3，为空4*/
    private Integer issatisfiedWeight;

    private List<String> wpids;

    private String classType;

    private String isComplaint; // 是否投诉

    private String isResponsible; // 是否有责

    private String complaintContent; // 投诉内容

    private String complaintSource; // 投诉来源

    private List<Long> dictDataAll;

    private List<String> dictDataList;
    private String visitStatus;

    private String visitUnStatus;

    private String satisfaction;

    //统计报表工单汇总表  三级承办单位流转工单处理情况汇总表
    private String type;

    //暂存派发标识   true可以派发，false不可以派发
    private Boolean sellFlag;

    //撤销标识   true可以撤销，false不可以撤销
    private Boolean revokeFlag;

    //排序  字段
    private String prop;

    //排序  ascending（正序），descending（倒序）
    private String order;

    //sql拼接排序
    private String orderBy;

    //sql表 的列字段
    private String rowItem;

    //坐席已处理 sql表 的列字段
    private String processedRowItem;

    //录音地址
    private String recordAddr;

    private String submitReason;

    private String  zjComment;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date recordCreateTime;

    private List<ZjRecord> recordAddrs;

    //为1时，坐席受理点击暂存，不校验必填值
    private String callFlag;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cbdwDate;


    /** 发起人姓名 */
    private String initiatorName;

    private String klContentTitle;

    private String nickName;

    private List<String> codes;

    //延期状态（为1时说明延期）(0代表延期申请中)
    private String extensionStatus;

    //参评满意度字段
    private String evaluateSatis;

    /** 工单待回访是否发送了短信: 1-是，0或者null-否 */
    private String vistSmsFlag;

    private Boolean dictDataFlag;

    //话务员服务满意度评测统计表需要的查询字段
    private String countDate;

    //新增工单归档时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date archiveTime;

    //三级承办单位提交的处理描述
    private String assistUnitMessage;

    private String zxMessage;

    //工单轨迹nextState
    private String whlNextState;

    private String extensionTime;

    //12345回访结果
    private String visit12345Result;

    /** 2025-07-10-新加字段(过渡字段，回访处理后修改成0): 承办单位再动退单：0--没有退单(数据库默认0)；1--退单 */
    private Integer isOrganizerBack;




}
